#js 

#### Создание объекта
```
let user = new Object();
let user = {};
```
#### Добавление элементов
```
user.name = "Ivan";
user["name"] = "Ivan";
```
#### Удаление элементов
```
delete user.name;
delete user["name"];
```
#### Доступ к элементам
```
let key = "name";
console.log(user[key]);
console.log(user.key);
```
#### Вычисляемые свойства
```
let key = "name";
let user = {
	[key]: "Sergey"
};
```
#### Свойство из переменной
```
function makeUser(name, age) {
	return {
		name, // то же самое, что и name: name
		age // то же самое, что и age: age
	};
}
```
#### Проверка существования свойства - оператор «in»
```
let user = { name: "John", age: 30 };
alert("age" in user);
let key = "name";
alert(key in user);
```
#### Перебор элементов объекта - цикл "for..in"
```
let user = { name: "John", age: 30 };
for (key in user) {
	console.log(user[key]);
}
```
#### Копирование объекта
```
let newObject = Object.assign(dest, [src1, src2, src3...]);
- Первый аргумент `dest` — целевой объект.
- Остальные аргументы `src1, ..., srcN` (может быть столько, сколько необходимо) являются исходными объектами
```

// TODO Добавить описание статического класса https://learn.javascript.ru/static-properties-methods